home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 41 / Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso / -seriously_amiga- / programming / other / ppc_c2p / macros.i < prev    next >
Text File  |  1999-04-19  |  2KB  |  98 lines

  1. ##############################################################################
  2. # macros  - written by Jacek Cybularczyk (NOE/Venus Art)
  3.  
  4. ##############################################################################
  5. # MERGE_nBITS
  6. # data1, data2, temp, mask, shift
  7. # \1     \2     \3    \4    \5
  8.  
  9.         .macro    MERGE_nBITS
  10.         srwi    \3,\2,\5
  11.         xor    \3,\3,\1
  12.         and    \3,\3,\4
  13.         xor    \1,\1,\3
  14.         slwi    \3,\3,\5
  15.         xor    \2,\2,\3
  16.         .endm
  17.  
  18.  
  19. ##############################################################################
  20. # MERGE_nBITS2
  21. # data1, data2, temp12, data3, data4, temp34, mask, shift
  22. # \1     \2     \3      \4     \5     \6      \7    \8
  23.  
  24.         .macro    MERGE_nBITS2
  25.         srwi    \3,\2,\8
  26.         srwi    \6,\5,\8
  27.         xor    \3,\3,\1
  28.         xor    \6,\6,\4
  29.         and    \3,\3,\7
  30.         and    \6,\6,\7
  31.         xor    \1,\1,\3
  32.         xor    \4,\4,\6
  33.         slwi    \3,\3,\8
  34.         slwi    \6,\6,\8
  35.         xor    \2,\2,\3
  36.         xor    \5,\5,\6
  37.         .endm
  38.  
  39.  
  40. ##############################################################################
  41. # MERGE_8BITS
  42. # data1, data2, temp
  43. # \1     \2     \3
  44.  
  45.         .macro    MERGE_8BITS
  46.         mr    \3,\1
  47.         rlwimi    \1,\2,24,8,15
  48.         rlwimi    \1,\2,24,24,31
  49.         rlwimi    \2,\3,8,0,7
  50.         rlwimi    \2,\3,8,16,23
  51.         .endm
  52.  
  53.  
  54. ##############################################################################
  55. # MERGE_8BITS2
  56. # data1, data2, temp12, data3, data4, temp34
  57. # \1     \2     \3      \4     \5     \6
  58.  
  59.         .macro    MERGE_8BITS2
  60.         mr    \3,\1
  61.         mr    \6,\4
  62.         rlwimi    \1,\2,24,8,15
  63.         rlwimi    \4,\5,24,8,15
  64.         rlwimi    \1,\2,24,24,31
  65.         rlwimi    \4,\5,24,24,31
  66.         rlwimi    \2,\3,8,0,7
  67.         rlwimi    \5,\6,8,0,7
  68.         rlwimi    \2,\3,8,16,23
  69.         rlwimi    \5,\6,8,16,23
  70.         .endm
  71.  
  72.  
  73. ##############################################################################
  74. # MERGE_16BITS
  75. # data1, data2, temp
  76. # \1     \2     \3
  77.  
  78.         .macro    MERGE_16BITS
  79.         mr    \3,\1
  80.         rlwimi    \1,\2,16,16,31
  81.         rlwimi    \2,\3,16,0,15
  82.         .endm
  83.  
  84.  
  85. ##############################################################################
  86. # MERGE_16BITS2
  87. # data1, data2, temp12, data3, data4, temp34
  88. # \1     \2     \3      \4     \5     \6
  89.  
  90.         .macro    MERGE_16BITS2
  91.         mr    \3,\1
  92.         mr    \6,\4
  93.         rlwimi    \1,\2,16,16,31
  94.         rlwimi    \4,\5,16,16,31
  95.         rlwimi    \2,\3,16,0,15
  96.         rlwimi    \5,\6,16,0,15
  97.         .endm
  98.